/*
 * Copyright (C) The Apache Software Foundation. All rights reserved.
 *
 * This software is published under the terms of the Apache Software License
 * version 1.1, a copy of which has been included with this distribution in
 * the LICENSE file.
 */
package ranab.server;

import java.net.Socket;
import java.net.InetAddress;


/**
 * It is the abstract base class of all the server classess. 
 * 
 * @author <a href="mailto:rana_b@yahoo.com">Rana Bhattacharyya</a>
 */
public
abstract class BaseServer {
    
    
    ////////////////////////////////////////////////
    ////////////// abstract methods    /////////////
    ////////////////////////////////////////////////
    /**
     * Get server port number.
     */
    public abstract int  getServerPort();
    
    /**
     * Get server name.
     */
    public abstract String getServerName();
    
    /**
     * Serve this request
     */
    public abstract void serveRequest(Socket dataSoc);
     
    
    ///////////////////////////////////////////
    //////////// other methods  ///////////////
    ///////////////////////////////////////////
    /**
     * Stop request. Default implementation - does nothing.
     */
    public void dispose() {
    }
        
    /**
     * Get server bind address. Default is localhost.
     */
    public InetAddress getServerAddress() {
        return null;
    }
}